home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
classics
/
tools
/
guck1_8
/
setup.s
< prev
Wrap
Text File
|
1995-11-25
|
4KB
|
120 lines
;
; SETUP - (c) 1987, 1988, 1989, 1990 by Marcel Waldvogel
;
OUTPUT 'C:\AUTO\SETUP.PRG' ;Optionen für den Turboass
DEFAULT 5
OPT F+ ;Fastloadbit setzen
sync EQU $FFFF820A ;Das Synchronisationsregister
psgsel EQU $FFFF8800 ;Die Register des Soundchip
psgrd EQU $FFFF8800
psgwd EQU $FFFF8802
conterm EQU $0484 ;einige Systemvariablen
_shell_p EQU $04F6
start: movea.l 4(A7),A5 ;Hole Basepage
lea stack(PC),A7 ;Setze eigenen Stack
movea.l 12(A5),A0 ;Berechne Programmlänge
adda.l 20(A5),A0
adda.l 28(A5),A0
lea 256(A0),A0 ;A0 := A0 + 256 (Länge der Basepage)
move.l A0,-(A7)
move.l A5,-(A7)
clr.w -(A7) ;Speicher verkleinern (wegen Pexec())
move.w #$4A,-(A7) ;Mshrink()
trap #1 ;GEMDOS
lea 12(A7),A7
pea msg(PC) ;Mitteilung ausgeben
move.w #9,-(A7) ;Cconws()
trap #1 ;GEMDOS
addq.l #6,A7
move.w #37,-(A7) ;Vsync(), auf VSYNC warten
trap #14 ;XBIOS
addq.l #2,A7
pea super(PC) ;Einige Einstellungen vornehmen
move.w #38,-(A7) ;Supexec()
trap #14 ;XBIOS
addq.l #6,A7
move.w #4,-(A7) ;Drucker auf EPSON (960 Punkte) stellen
move.w #33,-(A7) ;Setprt()
trap #14 ;XBIOS
addq.l #4,A7
move.w #1,-(A7) ;Tastaturrepeat beschleunigen
move.w #$0D,-(A7)
move.w #35,-(A7) ;Kbrate()
trap #14 ;XBIOS
addq.l #6,A7
move.w #$FFFF,-(A7) ;Ist CONTROL gedrückt?
move.w #$0B,-(A7) ;Kbshift()
trap #13 ;BIOS
addq.l #4,A7
btst #2,D0 ;Control?
beq.s term ;Nein -> Ende
clr.l -(A7) ;Dasselbe Environment
pea null(PC) ;Keine Kommandozeile
pea prgname(PC) ;Der Programmname
clr.w -(A7) ;Laden & starten
move.w #$4B,-(A7) ;Pexec(), Programm ausführen
trap #1 ;GEMDOS
lea 14(A7),A7
tst.l D0 ;War alles ok?
bpl.s term ;Ja -> Ende
move.w #7,-(A7) ;Sonst die Klingel betätigen
move.w #2,-(A7) ;CON:
move.w #3,-(A7) ;Bconout()
trap #13
addq.l #6,A7
term: clr.w -(A7) ;Pterm0(), Programm beenden
trap #1 ;GEMDOS
super: bchg #1,sync.w ;50/60 Hz wechseln
move.b #6,conterm.w ;Tastenklick ausschalten
clr.l _shell_p.w ;_shell_p löschen (bleibt bei RESET)
move SR,D1 ;Interrupts ausschalten
move #$2700,SR
move.b #14,psgsel.w ;Wähle PSG-Register 14 (Port A)
move.b psgrd.w,D0 ;Lies die Daten
or.b #%110,D0 ;Deselektiere die Laufwerke
move.b D0,psgwd.w ;Schreibe Daten zurück
move D1,SR ;Interrupts wieder einschalten
rts
DATA
msg: DC.B 13,10 ;Die Mitteilung
DC.B ' Setup - <Ctrl> startet \COMMAND.TOS'
DC.B 13,10,0
prgname: DC.B '\COMMAND.TOS' ;Das Programm
null: DC.B 0 ;Die Kommandozeile
copr: DC.B '(c) 1987-90 Marcel Waldvogel (Release 17)',0
EVEN
BSS
EVEN
DS.L $80 ;512 Bytes
stack: DS.L 1 ;Der Stack
EVEN
END